Conventionally, image geometric conversion is popularly utilized in resolution conversion such as enlargement, reduction, and the like of images, distortion correction of a lens, special video effects, texture mapping of CG and the like, and so forth. The image geometric conversion is to convert an original image into an arbitrary shape. A conventional image conversion apparatus implements the image geometric conversion by mapping the coordinate values of an input image corresponding to pixels of an output image upon converting an image from the input image to the output image.
Image data input from a digital camera, personal computer, or the like is band-limited by filter processing so as to remove aliasing in a pre-filter processor, and the processing result is stored in an image data storage memory.
An inverse coordinate arithmetic unit maps the coordinates of an output image to those of an input image based on desired geometric conversion. A conversion control circuit generates the coordinates (lattice points) of pixels of the output image based on an external control signal. An inverse coordinate conversion circuit inversely converts the coordinates of the output image output from the conversion control circuit into corresponding coordinate values of the input image. The inverse conversion of the coordinates from the output image into the input image is implemented by looking up a coordinate conversion table, making arithmetic operations based on various geometric conversion methods, or by their combinations. The inverse coordinate conversion circuit outputs the coordinates (lattice points) of a plurality of pixels near an inversely converted coordinate value on the input image to the image data storage memory. The image data storage memory outputs a plurality of image data of designated coordinates of the input image data that has undergone the band-limiting processing to an interpolation filter processing circuit. Also, the inverse coordinate conversion circuit supplies distances between the inversely converted coordinate value and the coordinates (lattice points) of neighboring pixels to an interpolation filter coefficient generation circuit.
An interpolation filter processor calculates the pixel values of the output image from those of the input image by interpolation. The interpolation filter processing circuit executes interpolation filter processing by multiply and accumulation operation of a plurality of pixel values output from the image data storage memory and interpolation filter coefficients output from the interpolation filter coefficient generation circuit, and outputs the processing result as a geometrically converted image.
As in the aforementioned image conversion apparatus, in the image geometric conversion, the pixels of the output image must correspond to those of the input image by the inverse conversion of the desired geometric conversion. However, the pixel positions (lattice points) of the output image do not always correspond to those of the input image, and the pixel values of the output image must be calculated from those of the input image near the inversely converted coordinate value by interpolation.
In general, the interpolation filter processing is implemented by the multiply and accumulation operation as in the aforementioned interpolation filter processing circuit, and can be written as:
                              G          ⁡                      (                          X              ,              Y                        )                          =                              ∑            i                    ⁢                                    ∑              j                        ⁢                                          g                ⁡                                  (                                                            x                      i                                        ,                                          y                      j                                                        )                                            ·                              h                ⁡                                  (                                      x                    -                                          x                      i                                                        )                                            ·                              h                ⁡                                  (                                      y                    -                                          y                      j                                                        )                                                                                        (        1        )            where G(X, Y) is the pixel value of the output image, and g(xi, yj) is that of the input image. (X, Y) is the pixel coordinate value. (lattice point) of the output pixel, (x, y) is the inversely converted coordinate value on the input image corresponding to the pixel value (X, Y) of the output image, and (xi, yj) is the pixel coordinate value (lattice point) near the inversely converted coordinate value. h(x-xi) and h(y-yj) are filter coefficients in the x- and y-directions. (x−xi) and (y−yj) are distances between the inversely converted coordinate values and neighboring pixel coordinate value (lattice point). As the interpolation method, bilinear interpolation, bicubic interpolation, and the like are known.
As can be seen from equation (1), the pixel value of the output image depends on the pixel values of the input image near the inversely converted coordinate value and the filter coefficients having as variables the distances between the inversely converted coordinate value and neighboring pixel coordinate value (lattice point), and the pixel value on the output image changes in accordance with the distances between the inversely converted coordinate value and neighboring pixel coordinate value, and the filter coefficients used even when image patterns of the input image near the inversely converted coordinate value are equal to each other. This causes generation of a pattern called moiré which does not exist in the input image upon converting an image which uniformly includes periodic patterns with high contrast. Since the moiré shape has the same pattern as a two-dimensional array of positions where filters having identical filter coefficients are used based on the distances between the inversely converted coordinate value and neighboring pixel coordinate values, a pattern which is different from the contents of the input image appears in the output image, thus generating a visually unnatural image.
As described above, in the conventional image geometric conversion, moiré is readily generated depending on the arithmetic contents of the interpolation processing. Conventionally, in order to reduce moiré generated by image processing, low-pass filter processing is executed after the image processing to smooth an image, thus reducing the moiré (see Japanese Patent Laid-Open No. 61-80971). However, the resolution drop incurs as a result of the low-pass filter processing.